<?php
// 要剪裁的文件
$file = '640.jpg';
// 要存储到的路径
$newpath = 'images/';
// 每等份图的名字（有几个元素就分几份）
$exNum = array(1,2,3,4,5,6,7,8);  
// 获取大图文件名
$filePre = explode('.', $file);
// 获取小图存放路径,以大图文件名为名称创建一个目录
$newfile = $newpath . $filePre[0]; 
create_dir($newfile);

//获取大图的尺寸
list($width, $height, $type, $attr) = getimagesize($file);

//算出每等份尺寸，
////不被整除，保证不留白
$minW = $width;
$minHx = ceil ($height / count($exNum));
//分别截取出小图
$bigpic = imagecreatefromjpeg($file);
$smallpic = imagecreatetruecolor($minW, $minHx);
//新建一个图像
for ($i = 0; $i < count($exNum); $i++) {
    if ($i == (count($exNum)-1)) {
        $minH = $height - $minHx * $i;
        $smallpic = imagecreatetruecolor($minW, $minH); //新建一个图像
    } else {
        $minH = $minHx;
    }
    //复制图像一部分
    imagecopy($smallpic, $bigpic ,0,0,0,($i*$minHx), $minW, $minH);
    //输出小图
    imagejpeg($smallpic, $newfile.'/'.$exNum[$i].'.jpg',100);
}



function create_dir($dir){
    return is_dir($dir) or (create_dir(dirname($dir))and mkdir($dir, 0777));
}
?>